///\file evolmodel.hh
///\brief contient la spécification des modèles devant evoluer dans le temps
///\author Allan BLANCHARD
#ifndef _EVOLMODEL
#define _EVOLMODEL

#include "depmodel.hh"

///\class EvolModel
///\brief Modèle (à dépendance) ayant la faculté de changer légèrement 
///a chaque fois qu'il sont dessinés
class EvolModel : public DepModel{
private:
  void (* evolute) (void); ///< fonction d'évolution
public :
  ///\brief Constructeur
  ///crée un modèle évolutif
  ///\param name fichier d'entrée
  ///\param evolute fonction d'évolution (appelée à chaque draw() )
  ///\param transparent activer ou non
  EvolModel(const char* name, 
	    void (* evolute) (void),
	    bool transparent = false);

  ///\brief
  ///dessine l'objet en appliquant son évolution
  ///- applique les transformations héritées de DepModel
  ///- applique la fonction d'évolution
  ///- applique Model::draw()
  virtual void draw() const;
};

#endif
